<?php

declare(strict_types=1);

namespace App\Models;

class PaymentOrder extends Base
{
    /**
     * 订单类型: 充值
     */
    const ORDER_TYPE_TOP_UP = 1;

    /**
     * 订单号前缀 (两位)
     */
    const ORDER_ID_PREFIX = [
        self::ORDER_TYPE_TOP_UP => 'CZ'
    ];

    /**
     * 支付渠道: 微信支付
     */
    const PAYMENT_CHANNEL_WECHAT = 1;

    /**
     * 支付渠道缩写 Map
     */
    const PAYMENT_CHANNEL_ABBREVIATION_MAP = [
        self::PAYMENT_CHANNEL_WECHAT => 'WX'
    ];

    /**
     * 支付状态: 生成
     */
    const PAY_STATUS_GENERATE = 1;

    /**
     * 支付状态: 完成
     */
    const PAY_STATUS_SUCCESS = 2;

    /**
     * 支付状态: 取消
     */
    const PAY_STATUS_CANCEL = 3;

    /**
     * 支付状态: 失败
     */
    const PAY_STATUS_FAIL = 4;

    /**
     * 渠道订单: 微信
     * @return \Hyperf\Database\Model\Relations\HasOne
     */
    public function channelWechat()
    {
        return $this->hasOne(PaymentChannelWechat::class, 'order_id', 'order_id');
    }
}
